<!--
 * ============LICENSE_START=======================================================
 * SDC
 * ================================================================================
 * Copyright (C) 2021 Nordix Foundation. All rights reserved.
 * ================================================================================
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * ============LICENSE_END=========================================================
-->

<div class="interface-operations">
  <loader [display]="isLoading" [size]="'large'" [relative]="true"></loader>
  <div class="operation-list">
    <div *ngIf="!isListEmpty()">
      <div class="expand-collapse">
        <a class="link"
           [ngClass]="{'disabled': isAllExpanded()}"
           (click)="collapseAll(false)">{{ 'INTERFACE_EXPAND_ALL' | translate }}
        </a> |
        <a class="link"
           [ngClass]="{'disabled': isAllCollapsed()}"
           (click)="collapseAll()">
          {{ 'INTERFACE_COLLAPSE_ALL' | translate }}
        </a>
      </div>

      <div class="interface-row" *ngFor="let interface1 of interfaces">
        <div class="interface-accordion" (click)="interface1.toggleCollapse()">
          <span
              class="chevron-container"
              [ngClass]="{'isCollapsed': interface1.isCollapsed}">
              <svg-icon
                  name="caret1-down-o"
                  mode="primary"
                  size="small">
              </svg-icon>
          </span>
          <span class="interface-name">{{interface1.displayType()}}</span>
        </div>

        <div class="generic-table" *ngIf="!interface1.isCollapsed">
          <div class="header-row table-row">
            <span
                class="cell header-cell field-name header-name">
                {{ 'INTERFACE_HEADER_NAME' | translate }}
            </span>
            <span class="cell header-cell field-description header-description">
              {{ 'INTERFACE_HEADER_DESCRIPTION' | translate }}
            </span>
          </div>

          <div class="data-row" *ngFor="let operation of interface1.operations"
               (click)="onSelectInterfaceOperation(interface1, operation)">
            <span
                class="cell field-name">
                {{operation.name}}
            </span>
            <span class="cell field-description"
                  [ngClass]="{'collapsed': operation.isCollapsed}">
              {{operation.getDescriptionEllipsis()}}
              <span class="more-or-less link" (click)="operation.toggleCollapsed($event)">
                {{!operation.isEllipsis ? '' : operation.isCollapsed ? 'More' : 'Less'}}
              </span>
            </span>
          </div>
        </div>
      </div>
    </div>
  </div>
</div>
